package cn.wolfcode.trip.base.mapper;

import cn.wolfcode.trip.base.domain.Sign;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface SignMapper {

    int deleteByPrimaryKey(Long id);

    //添加一条签到记录
    void insert(Sign record);

    //查询一个用户签到信息
    Sign selectByPrimaryKey(@Param("userId")Long userId);

    List<Sign> selectAll();

    int updateByPrimaryKey(Sign record);


    //查询今天是否有签到记录
    Sign selectByUserId(@Param("userId")Long userId, @Param("newDate")String newDate);

    //查询当天已经签到的那条记录
    Sign selectSignId(@Param("userId")Long userId, @Param("newDate")String newDate);

    //查询当前用户最新的积分
    int selectTopScore(@Param("userId")Long userId);

    //查询昨天是否有签到
    int selectBySignTime(@Param("userId")Long userId,@Param("lastDate")String lastDate);

    //查询续签天数
    int selectCount(@Param("userId")Long userId);

    //查询用户是否从来没有签到过
    List<Sign> selectSignState(@Param("userId")Long userId);

    //添加一条中间表信息
    void insertMiddle(@Param("user_id") Long user_id, @Param("product_id") Long product_id,@Param("creatTime") Date creatTime);

    //查询商品兑换时间
    Date selectChangeTime();

    //根据用户id去查用户签到总天数
    int selectAllCount(@Param("userId") Long userId);

    //查询昨天的续签天数
    int yesterdayCount(@Param("userId") Long userId,@Param("lastDate")String lastDate);
}